package com.nlgc365.designpattern.Chapter04_Pattern.Behavior.P01_Observer.AsynchObserver;

import java.util.ArrayList;
import java.util.List;

public class Publisher {
    // 属性: 存储所有的订阅者
    private final List<IObserver> observers = new ArrayList<>();

    // 方法: 添加订阅者
    public void registerObserver(IObserver observer) {
        observers.add(observer);
    }

    // 方法: 删除订阅者
    public void removeObserver(IObserver observer) {
        observers.remove(observer);
    }

    // 业务方法:
    public void publish() {
        for (IObserver observer : observers) {
            observer.inform();
        }
    }
}
